<?php

class Proyectos_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function consulta() {
        /* Funcion extrae todos los proyectos que hay en el sistema */
        $sql = "select proyectoId,proyectoNombre as proyectoSolicitante,proyectoNombre  from proyectos where proyectoEstadoSistema = 'A'  order by proyectoNombre";
        return $this->db->query($sql);
    }
    public function crud($isMobile = false){
        $sql ="";
        switch($this->input->post("oper")){
            case 'add':
                $sql = "insert into proyectos(proyectoContrato,proyectoNombre,proyectoDirector,proyectoCelular,proyectoTelefono,proyectoDireccion,proyectoNumAvaluos,proyectoObservacion,proyectoEstado,proyectoFechaCreo) ";
                $sql .= "values ('{$this->input->post("proyectoContrato")}','{$this->input->post("proyectoNombre")}','{$this->input->post("proyectoDirector")}','{$this->input->post("proyectoCelular")}','{$this->input->post("proyectoTelefono")}','{$this->input->post("proyectoDireccion")}','{$this->input->post("proyectoNumAvaluos")}','{$this->input->post("proyectoObservacion")}','{$this->input->post("proyectoEstado")}',now())";
                break;
            case 'edit':
                $id = $this->input->post("id");                
                if(!is_numeric($id) || trim($id) == "")
                    exit("Parametros incorrectos");                
                $sql = "update proyectos set ";
                $sql .= "proyectoContrato = '{$this->input->post("proyectoContrato")}',";
                $sql .= "proyectoNombre = '{$this->input->post("proyectoNombre")}',";
                $sql .= "proyectoDirector = '{$this->input->post("proyectoDirector")}',";
                $sql .= "proyectoCelular = '{$this->input->post("proyectoCelular")}',";
                $sql .= "proyectoTelefono = '{$this->input->post("proyectoTelefono")}',";
                $sql .= "proyectoDireccion = '{$this->input->post("proyectoDireccion")}',";
                $sql .= "proyectoNumAvaluos = '{$this->input->post("proyectoNumAvaluos")}',";
                $sql .= "proyectoObservacion = '{$this->input->post("proyectoObservacion")}',";
                $sql .= "proyectoEstado = '{$this->input->post("proyectoEstado")}'";
                $sql .= " where proyectoId = $id";
                break;
            case 'del':
                $id = $this->input->post("id");                
                if(!is_numeric($id) || trim($id) == "")
                    exit("Parametros incorrectos");                
                $sql = "update proyectos set ";
                $sql .= "proyectoEstadoSistema = 'I'";
                $sql .= " where proyectoId = $id";
                break;
        } //fin switch($this->input->post("opper")){
        $resultExecuteSql = $this->db->query($sql);
        if($isMobile)
            return $this->db->insert_id();
        else
            return $resultExecuteSql;
    } //fin public function crud(){
    public function avaluos($proyectoId){
        $sql = "select * from avaluos where proyectoId = '$proyectoId' order by avaluoFechaCreo";
        return $this->db->query($sql);
    }
    public function visitas($avaluosId){
        $sql = "select * from visitas where avaluoId = '$avaluosId' order by visitaFechaVisita";
        return $this->db->query($sql);
    }
    public function imprimeSeguimiento($proyectoId){
        $sql ="select c.ciudadNombre,v.visitaVereda,a.avaluoNumero,v.visitaNumCatastral,v.visitaVeredaNombre,v.visitaPropietario,v.visitaTerreno
                        ,GROUP_CONCAT(t.topografiaNombre SEPARATOR ',') as topografia
                        , GROUP_CONCAT(i.investigaVisitaValorAdoptado SEPARATOR ',') as valTopografia
                        ,@av:=(select  sum(inveVis.investigaVisitaValorAdoptado * topo.topografiaMedida) from visitas vis
                            inner join topografias topo on topo.visitaId = vis.visitaId
                            inner join investigacionesVisitas inveVis on inveVis.visitaId = vis.visitaId and inveVis.topografiasId = topo.topografiasId
                            inner join unidades un1 on un1.unidadId = vis.unidadId and un1.unidadEstado = 'A'
                            where vis.visitaId = v.visitaId) as totalAvaluo
                        ,@c:=(select sum(cons.construVisitaArea * dev.devaluaVisitaValAdoptado) as valTotal from visitas vis
                            inner join construccionesVisitas cons on cons.visitaId = vis.visitaId and cons.construVisitaTipo = 'C'
                            inner join unidades und on und.unidadId = cons.unidadId
                            inner join devaluacionVisita dev on dev.construVisitaId = cons.construVisitaId
                            where vis.visitaId = v.visitaId) as totalConstrucciones
                        ,@a:=(select sum(cons.construVisitaArea * dev.devaluaVisitaValAdoptado) as valTotal from visitas vis
                            inner join construccionesVisitas cons on cons.visitaId = vis.visitaId and cons.construVisitaTipo = 'A'
                            inner join unidades und on und.unidadId = cons.unidadId
                            inner join devaluacionVisita dev on dev.construVisitaId = cons.construVisitaId
                            where vis.visitaId = v.visitaId) as totalAnexos
                        ,@ep:=(SELECT sum(elementoVisitaTotal) as total FROM elementosVisitas
                            where visitaId = v.visitaId) as totalElementos
                        ,(@a + @ep + @c + @av) as totalGEN
                        ,v.visitaFechaAvaluo
                from visitas v
                inner join ciudades c on c.ciudadId = v.ciudadId and c.ciudadEstado
                inner join topografias t on t.visitaId = v.visitaId
                inner join investigacionesVisitas i on i.topografiasId = t.topografiasId
                inner join avaluos a on a.avaluoId = v.avaluoId and a.proyectoId = $proyectoId,(select @ep:=0,@a:=0,@c:=0,@av:=0) r
                group by v.visitaId ORDER BY t.topografiaNombre";
        return $this->db->query($sql);
    } //fin public function imprimeSeguimiento($proyectoId){
}

//fin class
?>
